﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace IPlugin
{
        public class SysPerfArgs : EventArgs
        {
            public SysPerfArgs(int cpu, int diskwrite, int diskread, int memory, String Time)
            {
                this.cpu = cpu;
                this.diskread = diskread;
                this.diskwrite = diskwrite;
                this.Time = Time;
                this.memory = memory;
            }
            public readonly double cpu;
            public readonly double memory;
            public readonly int diskwrite;
            public readonly int diskread;
            public readonly String Time;
        }
        public class MouseEventArgs : EventArgs
        {
            public MouseEventArgs(string ProcessName, short MouseXPos, short MouseYPos, String Time)
            {
                this.ProcessName = ProcessName;
                this.MouseXPos = MouseXPos;
                this.MouseYPos = MouseYPos;
                this.Time = Time;
            }
            public readonly string ProcessName;
            public readonly short MouseXPos;
            public readonly short MouseYPos;
            public readonly String Time;
        }
        public class KeyEventArgs : EventArgs
        {
            public KeyEventArgs(string ProcessName, int VKey, String Time)
            {
                this.ProcessName = ProcessName;
                this.VKey = VKey;
                this.Time = Time;
            }
            public readonly string ProcessName;
            public readonly int VKey;
            public readonly String Time;
        }

        public delegate void MouseEventHandler(MouseEventArgs e);
        public delegate void KeyEventHandler(KeyEventArgs e);
        public delegate void SysEventHandler(SysPerfArgs e);

    interface IPlugin
    {
        void Initialization();

        void Start();

        void Stop();

        void Unload();

        void Setting();
    }
}
